import { action, makeObservable, observable } from "mobx";

class Counter {
  constructor() {
    // 参数1：target 把谁变成响应式(可观察)；参数2：指定哪些属性或方法变成可观察
    makeObservable(this, {
      // 设置观察模式
      count: observable, // 设置管理状态的数据
      increment: action.bound, // 可以设置bound属性修改this指向
      decrement: action,
      reset: action,
    });
  }

  // 当前的初始化状态数据
  count = 0;

  // 操作状态的方法
  increment() {
    this.count++;
  }
  decrement() {
    this.count--;
  }
  reset() {
    this.count = 0;
  }
}
// eslint-disable-next-line import/no-anonymous-default-export
export default new Counter();
